package com.example.quartz.mapper;

import com.example.quartz.domain.SysJobLog;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 调度任务日志信息 数据层
 */
@Mapper
public interface SysJobLogMapper {

    /**
     * 获取quartz调度器日志的计划任务
     * 这是一个查询方法，用于获取quartz调度器日志的计划任务。
     * 它根据SysJobLog对象的属性进行查询，返回符合条件的调度任务日志列表。
     *
     * @param jobLog 调度日志信息
     * @return 调度任务日志集合
     */
    List<SysJobLog> selectJobLogList(SysJobLog jobLog);

    /**
     * 获取所有quartz调度器日志的计划任务
     * 这是一个查询方法，用于获取所有quartz调度器日志的计划任务。
     * 它返回所有调度任务日志的列表。
     *
     * @return 所有调度任务日志集合
     */
    List<SysJobLog> selectJobLogAll();

    /**
     * 根据调度日志ID查询调度任务日志
     * 这是一个查询方法，用于根据调度日志ID查询对应的调度任务日志。
     * 它返回符合条件的调度任务日志对象。
     *
     * @param jobLogId 调日志ID
     * @return 调度任务日志对象
     */
    SysJobLog selectJobLogById(Long jobLogId);

    /**
     * 新增任务日志
     *
     * @param jobLog 调度日志信息
     * @return 结果
     */
    int insertJobLog(SysJobLog jobLog);

    /**
     * 批量删除任务日志信息
     *
     * @param logIds 调度日志ID数组
     * @return 删除的记录数
     */
    int deleteJobLogByIds(Long[] logIds);

    /**
     * 删除任务日志
     *
     * @param jobId 调度日志ID
     * @return 结果
     */
    int deleteJobLogById(Long jobId);

    /**
     * 清空任务日志
     */
    void cleanJobLog();
}
